<?php
/**
 * 获取配置值，设置配置值
 *
 * @return void
 */
function config( $name = null, $value = null )
{
	static $_config = array();

	if ( empty( $name ) ) return $_config;
	
	if ( is_string( $name ) ) {
		$name = strtolower( $name );
		if ( is_null( $value ) ) {
			return isset( $_config[$name] ) ? $_config[$name] : null;
		}
		$_config[$name] = $value;
		return null;
	}
	
	if ( is_array( $name ) ) {
		$_config = array_merge( $_config, array_change_key_case( $name ) );
	}
	
	return null;
}

// 获取指定协议值，设置协议值
function protocol( $name = null, $value = null )
{
	static $_protocol = array();

	if ( empty( $name ) ) return $_protocol;
	
	if ( is_string( $name ) ) {
		$name = strtolower( $name );
		if ( is_null( $value ) ) {
			return isset( $_protocol[$name] ) ? $_protocol[$name] : null;
		}
		$_protocol[$name] = $value;
		return;
	}
	
	if ( is_array( $name ) ) {
		$_protocol = array_merge( $_protocol, array_change_key_case( $name, CASE_UPPER ) );
	}
	
	return null;
}

// 优化的require_once
function require_cache( $filename ) 
{
    static $_importFiles = array();
    if ( !isset( $_importFiles[$filename] ) ) {
        if ( file_exists_case( $filename ) ) {
        	echo 'require:'.$filename.'<BR>';
            require $filename;
            $_importFiles[$filename] = true;
        } 
        else {
            $_importFiles[$filename] = false;
        }
    }
    return $_importFiles[$filename];
}

// 区分大小写的文件存在判断
function file_exists_case( $filename ) 
{
    if ( is_file( $filename ) ) {
        if ( IS_WIN ) {
            if ( basename( realpath( $filename ) ) != basename( $filename ) )
                return false;
        }
        return true;
    }
    return false;
}

?>